<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    在 JavaScript 中，每个对象都有一个内部属性 [[Prototype]]（
    在浏览器环境中通常可以通过 __proto__ 属性访问，但这并非标准属性），
    它指向另一个对象，这个被指向的对象就称为该对象的原型。原型对象自身也是对象，
    同样拥有自己的原型，以此类推。
作用

原型的主要作用是实现对象之间的属性和方法共享。当访问一个对象的属性或方法时，
JavaScript 首先会在该对象本身查找，如果找不到，就会去该对象的原型对象中查找，若原型对象中也没有，
会继续在原型对象的原型中查找，直到找到或者到达原型链的末尾（即 Object.prototype）。

原型链（Prototype Chain）
定义

原型链是由多个对象通过 [[Prototype]] 属性连接而成的层次结构。当访问一个对象的属性或方法时，JavaScript 会按照原型链依次查找，直到找到该属性或方法，或者到达原型链的末尾（即 Object.prototype，其 [[Prototype]] 为 null）。
工作原理

当访问一个对象的属性或方法时，JavaScript 引擎会执行以下步骤：

1.首先检查该对象本身是否有该属性或方法。
2.如果没有，就通过该对象的 [[Prototype]] 属性查找其原型对象。
3.在原型对象中重复步骤 1 和 2，直到找到该属性或方法，或者到达原型链的末尾（即 Object.prototype 的 [[Prototype]] 为 null）。
</body>
</html>